package com.tosee.logic.impl;

import java.util.Date;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Service;

import com.tosee.exception.GeneriqueException;
import com.tosee.logic.AbstractBusinessLogic;
import com.tosee.logic.ISerieBusinessLogic;
import com.tosee.model.allocine.AlloSerie;
import com.tosee.model.dbTosee.Serie;
import com.tosee.model.dto.RechercheDto;

/**
 * Classe BL serie
 * 
 * @author RobinT
 */
@Service
public class SerieBusinessLogic extends AbstractBusinessLogic implements ISerieBusinessLogic {

    /**
     * LOGGER.
     */
    private static final Log LOGGER = LogFactory.getLog(SerieBusinessLogic.class);

    @Override
    public List<Serie> getSeriesByName(String _name) {
        return getDaoProvider().getSerieDao().findAll();
    }

    @Override
    public Serie getSeriesByCodeAllocine(RechercheDto _rechercheDto) throws GeneriqueException {

        getControleProvider().getCommunControle().authentifier(_rechercheDto);

        Serie retour = null;
        if(_rechercheDto != null && _rechercheDto.getCode() != null) {
            retour = getDaoProvider().getSerieDao().getSerieByCodeAllocine(_rechercheDto.getCode());
        }
        return retour;
    }

    @Override
    public Serie ajouterSerieLocale(AlloSerie _alloSerie) throws GeneriqueException {
        Serie retour = null;

        if(_alloSerie != null) {
            retour = new Serie();
            retour.setAuteur(_alloSerie.getCreateur());
            retour.setAnneeDebut(_alloSerie.getAnneeDebut());
            retour.setAnneeFin(_alloSerie.getAnneeFin());

            retour.setCodeAllocine(_alloSerie.getCode());
            retour.setTitre(_alloSerie.getTitre());
            retour.setTitreVo(_alloSerie.getTitreVo());
            retour.setDateUpdate(new Date());
            getDaoProvider().getSerieDao().save(retour);
        }

        return retour;
    }
}
